<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 沙箱模式  用到了闭包 
        // 函数内间接返回一个函数 
        // 外部函数返回一个对象 对象内写了多个函数  

        function outer(){
            let num1 = 666;
            let num2 = 888;
            let str2 = 'hello';
            // 函数内写函数
            const obj = {
                getnum1:function(){return num1;},

                getnum2:function(){return num2;},

                Setnum1:function(n){num1 = n},
            }
            return obj;

        }

        const res = outer(); // 得到obj 这个obj就是个沙箱 
        console.log(res.getnum1()); // 666
        console.log(res.getnum2()); // 888
        res.Setnum1(999);
        console.log(res.getnum1()); // 999 

        const res2 = outer(); // 新得到一个箱子
        console.log(res2.getnum1()); 
    </script>
</body>
</html>